package net.mymilkedeek.ludum.tinythumb;

import net.mymilkedeek.ludum.tinythumb.model.Battaljar;
import net.mymilkedeek.ludum.tinythumb.states.*;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;
import org.newdawn.slick.util.Log;

/**
 * TODO: Write Documentation
 *
 * @author Michael Demey
 */
public class Game extends StateBasedGame {
    
    public static final int S_INTRO = 0;
    public static final int S_MAIN  = 1;
    public static final int S_BATTL = 2;
    public static final int S_PARTY = 3;
    public static final int S_END   = 4;
    public static final int S_BAD   = 5;
    public static final int S_GOOD  = 6;
    public static final int S_GAMEOVER = 7;
    public static final int S_HELP = 8;


    public Game(String name) {
        super(name);
    }

    @Override
    public void initStatesList(GameContainer gameContainer) throws SlickException {
        Log.debug("GAME       - Initializing game states.");

        // add game states to the game
        addState(new IntroState());
        addState(new MainGameState());
        addState(new BattleState());
        addState(new PartyState());
        addState(new EndState());
        addState(new GoodState());
        addState(new BadState());
        addState(new GameOver());
        addState(new HelpState());

        new Battaljar();

        // Remove when in production
        enterState(S_INTRO);
    }
}